package com.futureCloudMOM.core.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.futureCloudMOM.core.entity.FBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "WMS_ERP_SourceSub", description = "源单子表")
@TableName(value = "WMS_ERP_SourceSub")
public class WmsErpSourceSub extends FBaseEntity implements Serializable {



    @NotNull(message="[主表ID]不能为空")
    @ApiModelProperty("主表ID")
    @TableField(value = "mainId")
    private Long mainId;

    @ApiModelProperty("单据ID")
    @TableField(value = "billID")
    private Long billID;

    @ApiModelProperty("ERP单据子表ID")
    @TableField(value = "billSubID")
    private Long billSubID;

    @ApiModelProperty("ERP单据子表行号")
    @TableField(value = "billSeq")
    private Long billSeq;

    @NotNull(message="[物料ID]不能为空")
    @ApiModelProperty("物料ID")
    @TableField(value = "materialId")
    private Long materialId;

    @NotBlank(message="[数量]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("数量")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "qty")
    private String qty;

    @NotBlank(message="[已关联数量]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("已关联数量")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "relationQty")
    private BigDecimal relationQty;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("未关联数量")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "notRelationQty")
    private BigDecimal notRelationQty;

    @NotNull(message="[状态]不能为空")
    @ApiModelProperty("状态")
    @TableField(value = "status")
    private Long status;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("未税单价")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "price")
    private String price;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("含税单价")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "taxPrice")
    private String taxPrice;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("税率")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "taxRate")
    private String taxRate;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("业务类型")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "businessType")
    private String businessType;

    @ApiModelProperty("ERP源单ID")
    @TableField(value = "srcBillID")
    private Long srcBillID;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("ERP源单单号")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "srcBillNo")
    private String srcBillNo;

    @ApiModelProperty("源单子表行号")
    @TableField(value = "srcBillSubID")
    private Long srcBillSubID;

    @ApiModelProperty("源单子表行号")
    @TableField(value = "srcBillSeq")
    private Long srcBillSeq;

    @NotNull(message="[预计到货日期]不能为空")
    @ApiModelProperty("预计到货日期")
    @TableField(value = "reveiveDate")
    private Date reveiveDate;

    @ApiModelProperty("订单母件物料id")
    @TableField(value = "parentMaterialId")
    private Long parentMaterialId;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("ERP单据入库上限")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "hStockQty")
    private String hStockQty;

    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("ERP单据入库下限")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "lStockQty")
    private String lStockQty;





}

